﻿namespace FireFly
{
    /// <summary>
    /// Defines visibility of the CollectionViewModel
    /// </summary>
    /// <remarks>
    /// Manage CollectionViewModel checking in VisualChildren collection then it's creating through ViewModelService.CombineVisualChildren
    /// </remarks>
    public enum CollectionShowMode
    {
        /// <summary>
        /// Always show collection
        /// </summary>
        AlwaysShow,
        /// <summary>
        /// Hide if collection is empty
        /// </summary>
        HideEmptyCollection,
        /// <summary>
        /// If collection is only one element of tree - hide collection and show its children as elements of parent node
        /// </summary>
        HideSingleCollection, 
        /// <summary>
        /// Both HideEmptyCollection and HideWhenOnlyOneChildOfParent behavior
        /// </summary>
        UserFriendly = HideEmptyCollection | HideSingleCollection, 
        /// <summary>
        /// Always hide collection and show its children as elements of parent node
        /// </summary>
        Transparent 
    }
}